DuckDB 其中一個受到廣泛喜愛的特性就是 Friendly SQL,我個人都把這種 SQL 叫做范特西 SQL,DuckDB 的 SQL dialet 是基於 Postgres dialet fork 的,所以你可以預期,幾乎所有的 Postgres SQL 都相容於 DuckDB。 不過 Friendly SQL 指的是 DuckDB 在其上針對使用者體驗,進行優化的擴充,舉例來說
在前幾天的時候,我們看到了可以直接 query 一個 url 上的 Parquet , CSV 檔案,這個特性叫做 Replacement Scan
。 這幾乎是所有人都愛不釋手的一個擴充,Replacement Scan
指的是如果
看到有 .csv .parquet 結尾的字串出現在 FROM 後面,DuckDB 會自動把這個路徑的檔案,當作一個 Table ,你不用在手動 COPY 、 Import 、 Insert 等等在其他 Database 中必要的匯入動作。 我基本上遇到任何 CSV 檔案現在都只會想用 DuckDB 分析,因為 Replacement Scan
真的太方便了 😍
接著我們談談很多人在學 SQL 的時候都會有的疑問? 為什麼 FROM 不是作為 SQL 的第一個 Clause ?
其實沒有為什麼,當初 IBM 的大師們這樣設計而已。
那我們可以改變嗎? 當然可以。
所以 DuckDB 結合 Replacement Scan
與 FROM frist SQL
以下這句 SQL 你絕對會愛不釋手
FROM 'https://ironman24.douenergy.com/employees.parquet'
這句 SQL 代表就是,
SELECT *
FROM 'https://ironman24.douenergy.com/employees.parquet'
的縮寫
趕快到 Colab 或是 DuckDB WASM 試試看吧 !